package com.iakuil.app.common.core.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 密码校验等级策略
 *
 * @author Kai
 */
@Getter
@AllArgsConstructor
public enum PasswordStrategy {
    // 简单策略：必须大于6位数字（一般用于验证码）
    BASIC("^d{6}$", "请输入6位数字密码"),
    // 默认策略：必须同时包含字母和数字，区分大小写，不支持特殊符号
    DEFAULT("^(?=.*[a-zA-Z])(?=.*[0-9])[A-Za-z0-9]{8,18}$", "请输入8-18位的密码，必须同时包含字母和数字"),
    // 严格策略：密码必须由字母、数字以及特殊字符组成，区分大小写
    STRICT("^(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[._~!@#$^&*])[A-Za-z0-9._~!@#$^&*]{8,20}$", "请输入8-20位的密码，必须由字母、数字和特殊字符组成");

    private String regx;
    private String errMsg;
}
